The present invention relates to computer-based training (CBT) and particularly to the use of a software agent to provide instruction to a user.
CBT is provided with many commercially available applications to either complement or replace manuals, written tutorials and other traditional instruction materials. CBT can be interactive and often models the role of a human mentor, providing specific feedback in response to a user's performance during a training session.
Generally there are two ways CBT is implemented. In "Simulated CBT" the application is simulated by a CBT program. In "Concurrent CBT" the application is run concurrently with a CBT program.
As applications become more sophisticated and make greater utilizations of graphics, it is more difficult to use simulated CBT. This is because complexity in an application generally requires complexity in a program which simulates the application.
Concurrent CBT may often be much less complex than simulated CBT because in concurrent CBT the application itself provides its own interface and functionality during a training session. In a concurrent CBT session, a CBT program generally will initiate the application and act as a "shell" around the application.
During the concurrent CBT session, the CBT will open the application and control it to bring the application to a known, desired state. Using its own routines CBT will deliver instructional text and graphics to a user through "windows" which are drawn on top of the application. The text and graphics explain the application concepts and prompt for user response. The CBT monitors user input to determine whether the user has responded appropriately, and monitors the display screen to determine when the application has finished processing input. Then the CBT can advance the training based on the user's response.
Typically, the CBT controls and monitors the activities of an application at a syntactic level. What is meant herein by "syntactic level" is the action a user makes, such as keystrokes or movements of a mouse, in order to interact with an application. For example, in a CBT acting at a syntactic level where an application is controlled with a keyboard and mouse and where it outputs to a CRT monitoring device, the CBT would be able to detect detect key and mouse input, as well as the status of pixels on the CRT. This level of interaction is referred to as "syntactic" because at this level the computer does not semantically interpret the intent associated with the actions.